home *** CD-ROM | disk | FTP | other *** search
/ Freelog 112 / FreelogNo112-NovembreDecembre2012.iso / Jeu / deadlyrace / deadlyrace_setup.exe / {app} / Data / Scripts / lightning3.lua < prev    next >
Encoding:
Text File  |  2010-03-15  |  3.7 KB  |  151 lines

  1. local script = globalObject;
  2.  
  3. local object = nil;
  4. local lighting_a = nil;
  5. local lighting_b = nil;
  6. local lighting_c = nil;
  7. local flarik1 = nil;
  8. local flarik2 = nil;
  9. local flarik3 = nil;
  10.  
  11.  
  12. local commandMap = {};
  13.  
  14. local dt = 0;
  15. local blight = true;
  16.  
  17. local dr, dg, db, da, sr, sg, sb, sa, ar, ag, ab, aa, dirx, diry, dirz;
  18. local posx, posy, posz = 0, 0, 0;
  19.  
  20. local bLight1    = false;
  21. local bLight2    = false;
  22. local bLight3    = false;
  23. local bLight4    = false;
  24.  
  25. local function UpdateLighting()
  26.     dt = dt + GetDeltaTime();
  27.     
  28.     if(bLight2)
  29.     then
  30.         DrawDynamicObject(lightning_b);
  31.         DrawDynamicObject(lightning_c);
  32.         DrawDynamicObject(flarik2);
  33.         DrawDynamicObject(flarik3);
  34.     end
  35.     
  36.     if((dt > 11.0) and (not bLight1) and (not bLight2) and (not bLight3))
  37.     then
  38.         SetLight(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -posx, -posy, -posz);
  39.         SetVisible(object, true);
  40.         SetVisible(lightning_b, false);
  41.         SetVisible(lightning_c, false);
  42.         SetVisible(flarik1, true);
  43.         SetVisible(flarik2, false);
  44.         SetVisible(flarik3, false);
  45.         bLight1 = true;
  46.         bLight2 = false;
  47.         if(not PlaySpecialSound3D("thunder", posx, posy, posz, false, true))
  48.         then
  49.             PlaySpecialSound3D("thunder2", posx, posy, posz, false, true);
  50.         end
  51.     end
  52.     if((dt > 11.05) and bLight1 and (not bLight2) and (not bLight3))
  53.     then
  54.         SetVisible(object, true);
  55.         SetVisible(lightning_b, true);
  56.         SetVisible(lightning_c, false);
  57.         SetVisible(flarik1, true);
  58.         SetVisible(flarik2, true);
  59.         SetVisible(flarik3, false);
  60.         bLight2 = true;
  61.     end
  62.     if((dt > 11.1) and bLight2 and bLight1 and (not bLight3) )
  63.     then
  64.         SetVisible(object, false);
  65.         SetVisible(lightning_b, true);
  66.         SetVisible(lightning_c, true);
  67.         SetVisible(flarik1, false);
  68.         SetVisible(flarik2, true);
  69.         SetVisible(flarik3, true);
  70.         bLight3 = true;
  71.     end
  72.     if((dt > 11.20) and bLight3 and bLight2 and bLight1 and (not bLight4))
  73.     then
  74.         SetVisible(object, false);
  75.         SetVisible(lightning_b, false);
  76.         SetVisible(lightning_c, true);
  77.         SetVisible(flarik1, false);
  78.         SetVisible(flarik2, false);
  79.         SetVisible(flarik3, true);
  80.         bLight4 = true;
  81.     end
  82.     if((dt > 11.25) and bLight3 and bLight2 and bLight1 and bLight4)
  83.     then
  84.         SetVisible(object, false);
  85.         SetVisible(lightning_b, false);
  86.         SetVisible(lightning_c, false);
  87.         SetVisible(flarik1, false);
  88.         SetVisible(flarik2, false);
  89.         SetVisible(flarik3, false);
  90.         SetLight2(dr, dg, db, da, sr, sg, sb, sa, ar, ag, ab, aa, dirx, diry, dirz);
  91.         bLight1 = false;
  92.         bLight2 = false;
  93.         bLight3 = false;
  94.         bLight4 = false;
  95.         dt = 0;
  96.     end
  97. end
  98.  
  99. local function ExecuteCommands()
  100.     while(SetNextCommand(script))
  101.     do
  102.         local command = GetCurrentCommand(script);
  103.         if (commandMap[command])
  104.         then
  105.             commandMap[command]();
  106.         end
  107.     end
  108. end
  109.  
  110. local function AddObject()
  111.     object = StringToPointer(GetCurrentParams(script));
  112.     dr, dg, db, da, sr, sg, sb, sa, ar, ag, ab, aa, dirx, diry, dirz = GetLight();
  113.     posx, posy, posz = GetPosition(object);
  114.     SetVisible(object, false);
  115.     lightning_b = FindObject(object, "lightning_b");
  116.     lightning_c = FindObject(object, "lightning_c");
  117.     flarik1 = FindObject(object, "flarik1");
  118.     flarik2 = FindObject(object, "flarik2");
  119.     flarik3 = FindObject(object, "flarik3");
  120. end
  121.  
  122. local function DeleteObject()
  123.     StopSpecialSound("thunder");
  124.     StopSpecialSound("thunder2");
  125.     Release(object);
  126.     object = nil;
  127.     Release(lightning_b);
  128.     lightning_b = nil;
  129.     Release(lightning_c);
  130.     lightning_c = nil;
  131.     Release(flarik1);
  132.     flarik1 = nil;
  133.     Release(flarik2);
  134.     flarik2 = nil;
  135.     Release(flarik3);
  136.     flarik3 = nil;
  137.     
  138.     StopScript(script);
  139. end
  140.  
  141. commandMap["add_object"] = AddObject;
  142. commandMap["delete_object"] = DeleteObject;
  143. commandMap["release_all"] = DeleteObject;
  144.  
  145. while(true)
  146. do
  147.     ExecuteCommands();
  148.     UpdateLighting();
  149.     Update();
  150. end
  151.